package com.lanswon.qzsmk.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.lanswon.qzsmk.model.User;
import com.lanswon.qzsmk.vo.SaveOrUpdateTellerVo;
import com.lanswon.qzsmk.vo.TellerAuthVo;
import com.lanswon.qzsmk.vo.TellerVo;
import com.lanswon.qzsmk.vo.UserRoleVo;

@Repository
public interface UserMapper {

	/**
	 * 保存
	 * @param record
	 * @return
	 */
    int insert(SaveOrUpdateTellerVo record);

    /**
	 * 更新
	 * @param b
	 */
	void update(SaveOrUpdateTellerVo b);
	
	/**
	 * 查询是否有数据
	 * @return
	 */
	User queryFirstUser();
	
	/**
	 * 分页查询
	 * @param t
	 * @return
	 */
	List<User> queryUserByNameOrNo(TellerVo t);
	
	/**
	 * 根据条件查询总数
	 * @param t
	 * @return
	 */
	int queryUserCountByNameOrNo(TellerVo t);
	
	/**
	 * 查询
	 * @param userNo 用户编号
	 * @return 柜员信息
	 */
	User queryUserByNo(Integer userNo);
	
	/**
	 * 查询设置该角色的用戶
	 * @param roleId
	 * @return
	 */
	List<UserRoleVo> queryUserByRole(UserRoleVo vo);
	
	/**
	 * 查询设置该角色的用戶 总数
	 * @param vo
	 * @return
	 */
	int queryUserCountByRole(UserRoleVo vo);
	
	/**
	 * 查询
	 * @param loginName 登录名
	 * @return
	 */
	User queryUserByLoginName(String loginName);
	
	/**
	 * 分页查询 柜员授权
	 * @param vo
	 * @return
	 */
	List<TellerAuthVo> queryTellerByUserNameOrUserNo(TellerAuthVo vo);
	
	/**
	 * 分页查询 柜员授权  总数
	 * @param vo
	 * @return
	 */
	int queryTellerCountByUserNameOrUserNo(TellerAuthVo vo);
	
	/**
	 * 通过员工号和所在网点号，查询出userId
	 * @param empNo
	 * @param branchNo
	 * @return
	 */
	Integer queryUserIdByBranchAndEmp(@Param("empNo")String empNo, @Param("branchNo")String branchNo);

}